home *** CD-ROM | disk | FTP | other *** search
-
- var gIsEdit = false;
- var gList;
- var gProxyURI;
- var gProxy;
- var gProxyConfig;
- var gProxyNameField;
- var gFromProxyManager;
-
- function switchProxy_initVals(){
-
-
- //Set Globals
- gProxyNameField = document.getElementById("proxy-name");
-
- //Edit
- if(window.arguments.length > 1 && window.arguments[0] == "edit" && !switchproxy_isEmpty(window.arguments[1])){
-
- //Proxy URI
- gProxyURI = window.arguments[1];
-
- gIsEdit = true;
- try{
- gProxy = switchProxy_ds_getResource(gProxyURI);
-
- //Load Fields
- var gProxyConfig = switchProxy_ds_getPropertyValuesFor(gProxyURI);
- for(key in gSwichProxy_options){
- var oField = document.getElementById(key);
- var sValue = gProxyConfig[gSProxyRdfNodeUriRoot + "#" + key];
-
- oField.value = sValue;
- }
-
- //Label
- gProxyNameField.value = gProxyConfig[gSProxyRdfNodeName];
-
- //Set Socks Radio
- oSocks = document.getElementById("networkProxySOCKSVersion");
- if(oSocks.value == "4")
- oSocks.selectedItem = document.getElementById("networkProxySOCKSVersion4");
- else
- oSocks.selectedItem = document.getElementById("networkProxySOCKSVersion5");
-
- }catch(err){ alert(switchproxy_getString("error.unknown")); self.close(); }
- }
-
- //Enable Fields
- switchProxy_enableOptions();
-
- // Thunderbird
- if(navigator.userAgent.search(/Thunderbird/gi) > -1){
- document.getElementById("ftp_row").style.display = "none";
- document.getElementById("gopher_row").style.display = "none";
- document.getElementById("none_row").style.display = "none";
- document.getElementById("none_example_row").style.display = "none";
- }
- }
-
- function switchProxy_saveProxy(){
-
- try{
-
- /*
- * Validation
- */
- //Empty
- if(gProxyNameField.value == ""){
- alert(switchproxy_getString("error.add.empty"));
-
- gProxyNameField.focus();
- gProxyNameField.setSelectionRange(0, gProxyNameField.textLength);
-
- return false;
- }
- //Special Chars
- else if(!switchproxy_allowedChars(gProxyNameField.value)){
- alert(switchproxy_getString("error.add.invalid"));
- return false;
- }
- //Can't be named 'None'
- else if(switchproxy_simplify(gProxyNameField.value) == switchproxy_simplify(switchproxy_getString("common.proxy.none"))){
- alert(switchproxy_getString("error.add.duplicate"));
- return false;
- }
-
- //Is This a Duplicate Label?
- var oTestProxy = switchProxy_ds_getElementForValue(gSProxyRdfNodeName, gProxyNameField.value);
- if(oTestProxy != null && (!gIsEdit || oTestProxy.Value != gProxy.Value)){
- alert(switchproxy_getString("error.add.duplicate"));
- return false;
- }
-
- /*
- * Edit
- */
- if(gIsEdit){
-
- //Update RDF Properties
- for(key in gSwichProxy_options){
- switchProxy_ds_changePropertyValue(gProxy, (gSProxyRdfNodeUriRoot + "#" + key), document.getElementById(key).value);
- }
-
- //Update Name
- switchProxy_ds_changePropertyValue(gProxy, gSProxyRdfNodeName, gProxyNameField.value);
- }
- /*
- * Add
- */
- else{
- var sProxyUri = opener.switchproxy_getUniqueProxyUri();
- var oProxy = switchProxy_ds_getResource(sProxyUri);
-
- //Add Element
- switchProxy_ds_addElement(sProxyUri);
-
- //Add Properties
- for(key in gSwichProxy_options){
- var oProp = switchProxy_ds_getResource(gSProxyRdfNodeUriRoot + "#" + key);
- switchProxy_ds_addProperty(oProxy, oProp, document.getElementById(key).value, true);
- }
-
- //Add Name
- switchProxy_ds_addProperty(oProxy, switchProxy_ds_getResource(gSProxyRdfNodeName), gProxyNameField.value, true);
- }
- /*
- * Finish
- */
- opener.switchproxy_populateList();
- if(gIsEdit){
-
- //Is this proxy is in use, refresh proxy
- var oPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
- if(oPrefs.prefHasUserValue("switchproxy.proxy.current")
- && oPrefs.getCharPref("switchproxy.proxy.current") == gProxy.Value){
-
- opener.switchproxy_doCommand("switchproxy_setProxy()");
- }
- //If not in use, select proxy
- else{
- opener.switchproxy_doCommand("switchproxy_selectItem('"+ gProxyNameField.value +"')");
- }
-
- //alert("Proxy Info Changed");
- }
- else{
- opener.switchproxy_doCommand("switchproxy_selectItem('"+ gProxyNameField.value +"')");
- //alert("Proxy Added");
- }
-
- }catch(e){
- alert(switchproxy_getString("error.unknown") +"\n("+ e +")");
- return;
- }
-
- switchproxy_openerFocus()
- return true;
- }
-
-
- //Enable or disable Manual
- // + config options
- function switchProxy_enableOptions(){
- var disable = !(document.getElementById("networkProxyType").value == "1"); //if 1 then manual is selected
-
- //Set Radios
- oType = document.getElementById("networkProxyType");
- if(!disable){
- oType.selectedItem = document.getElementById("type-manual-radio");
- }
- else{
- oType.selectedItem = document.getElementById("type-auto-radio");
- }
-
- //Manual Options
- document.getElementById("networkProxyHTTP").disabled = disable;
- document.getElementById("networkProxyHTTP_Port").disabled = disable;
- document.getElementById("networkProxySSL").disabled = disable;
- document.getElementById("networkProxySSL_Port").disabled = disable;
- document.getElementById("networkProxyFTP").disabled = disable;
- document.getElementById("networkProxyFTP_Port").disabled = disable;
- document.getElementById("networkProxyGopher").disabled = disable;
- document.getElementById("networkProxyGopher_Port").disabled = disable;
- document.getElementById("networkProxySOCKS").disabled = disable;
- document.getElementById("networkProxySOCKS_Port").disabled = disable;
- document.getElementById("networkProxySOCKSVersion4").disabled = disable;
- document.getElementById("networkProxySOCKSVersion5").disabled = disable;
- document.getElementById("networkProxyNone").disabled = disable;
-
- //Auto
- document.getElementById("networkProxyAutoconfigURL").disabled = !disable;
- }